/****************************************************************

kernel/driver/ntfs.h
NTFS defines and structs for AWOS Kernel

****************************************************************/

#ifndef ___DRIVER_NTFS_H_
#define ___DRIVER_NTFS_H_

struct FsNtfsVbr0
{
	/** start of boot code -- usually 0xEB5290 **/
	char boot[3];
	/** normally "NTFS    " **/
	char oem[8];
	/** bytes per sector **/
	char bps[2];
	/** reserved sectors before VBR -- Windows will not mount unless zero **/
	char rsvdsec[2];
	/** reserved -- must be zero **/
	char reserved[3];
	/** reserved -- must be zero **/
	char reserved2[2];
	/** media descriptor: 0xF0 = removable, 0xF8 = non-removable **/
	char media;
	/** reserved -- must be zero **/
	char reserved3[2];
	/** sectors per track -- normally 63 on disks **/
	char spt[2];
	/** number of heads -- normally 255 **/
	char heads[2];
	/** hidden sectors preceding this volume -- 63 for 1st volume **/
	char hiddensecs[4];
	/** reserved -- must be zero **/
	char reserved4[4];
	/** reserved -- normally 0x80008000 **/
	char reserved5[4];
	/** total number of sectors on the volume **/
	char totalsecs[8];
	/** logical cluster number of $MFT **/
	char mftclust[8];
	/** logical cluster number of $MFTMirr (mirror of $MFT) **/
	char mirrclust[8];
	/** clusters per MFT record -- 00-7Fh = size -- 80h-FFh = 2^abs(recsize) **/
	char recsize;
	/** reserved and unused **/
	char reserved6[3];
	/** clusters per index buffer -- something freaky to do with directories; for determing size, see recsize **/
	char cpi;
	/** reserved and unused **/
	char reserved7[3];
	/** volume serial number **/
	char serial[8];
	/** reserved and usused **/
	char reserved8[4];
	/** bootstrap code for NT **/
	char bootcode[426];
	/** signature -- 0x55 0xAA **/
	char sig[2];
};

#endif //#ifndef ___DRIVER_NTFS_H_